package everyday;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Objects;

/**
 * Object相关操作
 *
 * @author gaojie
 * @date 2023-08-08
 */
public class ObjectOperation {

    /**
     * 测试 null 强转之后是什么，会不会报错：不会报错，可以
     */
    @Test
    void test() {
        final HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("companyId", 100L);

        Long companyId = (Long) paramMap.get("companyId");
        Long companyId2 = (Long) paramMap.get("companyId2");
        System.out.println(companyId);
        System.out.println(companyId2);
    }

    /**
     * 测试一个null的对象，传入到方法中中，被赋值了之后，最后取的是新值还是旧值
     * 测试结果：还是旧值，对于null传的是空引用
     */
    @Test
    void test02() {
        Person person = null;
        System.out.println(person);
        setPerson(person);
        System.out.println(person);
    }

    private void setPerson(Person person) {
        person = Objects.isNull(person) ? new Person("Aa", 180, true) : person;
        System.err.println(person);
    }
}
